Docker学习之Docker Registry

前言

前面已经学习了怎样通过Dockerfile来构建我们自己的镜像了,但是一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了Docker Hub来维护管理所有的镜像,只是对于免费用户而言,只能创建一个私有仓库,付费用户才拥有更多私有仓库的权限,对此官方开源了Docker Registry的源代码,我们可以通过它在局域网内部搭建私有的镜像注册中心.

使用公共注册中心

Docker Hub是Docker官方维护的公共镜像注册中心,用户可以将自己的镜像推送到Docker Hub免费的仓库中,要想使用Docker Hub得先注册一个Docker Hub账号.
账号注册地址:https://hub.docker.com/(注意要想成功注册账号得先科学上网)
image.png
注册成功后就可以通过docker login命令输入账号密码登录进去创建我们自己的私有仓库和推送镜像了.

搭建本地注册中心

通常由于安全和网络原因,企业内部都会在本地局域网搭建一个镜像注册中心.
1.运行docker pull命令拉取registry镜像.
image.png
2.通过registry镜像启动一个容器.
image.png
3.查看容器运行情况.
image.png
4.容器启动后打开浏览器输入192.168.56.101:5000/v2/出现下面情况则说明运行正常.
image.png
接着我们使用docker push命令来推送自己的镜像到本地注册中心.
推送过程可能会不成功即出现下面这种情况getsocket:connection refused.
image.png
可尝试以下解决方案:
修改/etc/docker/daemon.json文件

1
vi /etc/docker/daemon.json

增加”insecure-registries”: [“192.168.56.101:5000”]
image.png
然后重启docker引擎

1
service docker restart

再次推送镜像到注册中心,我们会发现这次推送成功了.
image.png
push成功后再来看看刚刚推送上来的镜像,打开浏览器输入:
image.png
也可以使用以下命令来验证是否已推送成功:
image.png
到此就搭建好了Docker私有仓库了,现在你可以通过 docker pull从本地Registry拉取镜像了.